using System;

namespace RTMP.SimpleClient.ValueObject
{
    /// <summary>
    /// RTMP 连接选项
    /// </summary>
    public record RTMPConnectOptions
    {
        /// <summary>
        /// RTMP 应用名，如 "live" 或 "vod"
        /// </summary>
        public string? App { get; init; }

        /// <summary>
        /// Flash Player 版本，如 "FMLE/3.0 (compatible; FMSc/1.0)"
        /// </summary>
        public string? FlashVer { get; init; }

        /// <summary>
        /// 完整流地址，如 "rtmp://server/live"
        /// </summary>
        public string? TcUrl { get; init; }

        /// <summary>
        /// 可选，swf 文件 URL
        /// </summary>
        public string? SwfUrl { get; init; }

        /// <summary>
        /// 可选，网页 URL
        /// </summary>
        public string? PageUrl { get; init; }

        /// <summary>
        /// 可选，是否使用 Flash 音频填充
        /// </summary>
        public bool? Fpad { get; init; }

        /// <summary>
        /// 客户端功能标识，通常 15
        /// </summary>
        public double? Capabilities { get; init; }

        /// <summary>
        /// 支持音频编码类型，bitmask
        /// </summary>
        public double? AudioCodecs { get; init; }

        /// <summary>
        /// 支持视频编码类型，bitmask
        /// </summary>
        public double? VideoCodecs { get; init; }

        /// <summary>
        /// AMF 编码类型，0=AMF0，3=AMF3
        /// </summary>
        public double? ObjectEncoding { get; init; }
    }
}
